
package bankteam.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;

import bankteam.interfaces.usuarioInterface;
import bankteam.modelo.Usuario;
import bankteam.util.ConexionBD;

public class usuarioDAO implements usuarioInterface{

	@Override
	public void insertaUsuario(Usuario usuario) throws Exception {
		String query = "INSERT INTO usuario(Ape_paterno,Ape_materno,Nombre,Cod_Tipo_Documento," +
				"Numero_Documento,Cod_Tipo_Usuario,Usuario,Clave)VALUES (?,?,?,?,?,?,?,?)";
		Connection con = null;
		PreparedStatement stmt = null;
		try {
			
			con = ConexionBD.obtenerConexion();
			stmt = con.prepareStatement(query);
			stmt.setString(1, usuario.getApePaterno());
			stmt.setString(2, usuario.getApeMaterno());
			stmt.setString(3, usuario.getNombre());
			stmt.setInt(4,usuario.getTipDocumento());
			stmt.setString(5, usuario.getNroDocumento());
			stmt.setInt(6, usuario.getCodTipoUsuario());
			stmt.setString(7, usuario.getUsuario());
			stmt.setString(8, usuario.getClave());
			
			
			int i = stmt.executeUpdate();
			
			if (i != 1) {
				throw new SQLException("No se pudo insertar");	}
			
		} catch (SQLException e) {
			System.err.println(e.getMessage());
			System.out.println(e.getMessage());
		} finally{
			con.close();
			stmt.close();
		}
	}

	@Override
	public String validaUsuario(String usu, String clave) throws Exception {
		
		String query = "select u.Ape_Paterno,u.Nombre,t.Des_Tipo_Usuario " +
				"from usuario u inner join tipo_usuario t on(u.Cod_Tipo_Usuario = t.Cod_Tipo_Usuario) " +
				"where Usuario =? and Clave=?";
		
		String salida ="";
		Collection<Usuario> lista = new ArrayList<Usuario>();
		Connection con = null;
		PreparedStatement stmt = null;
		ResultSet rs = null;
		try {
			con = ConexionBD.obtenerConexion();
			stmt = con.prepareStatement(query);
			stmt.setString(1,usu);
			stmt.setString(2,clave);
			rs = stmt.executeQuery();
			
			while (rs.next()) {
				Usuario usua = new Usuario();
				usua.setApePaterno(rs.getString(1));
				usua.setNombre(rs.getString(2));
				usua.setDesTipoUsuario(rs.getString(3));
				lista.add(usua);
				salida = "USUARIO: "+usua.getApePaterno()+", "+ usua.getNombre()+" - "+ usua.getDesTipoUsuario();
				
			}
			return salida;
			
		} catch (SQLException e) {
			System.out.println(e.getMessage());
		
		} finally {
			con.close();
			stmt.close();
			rs.close();
		}
		
		return salida;
		}

}
